package com.questionnaire.controller;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.questionnaire.entity.Question;
import com.questionnaire.entity.QuestionExample;
import com.questionnaire.entity.Questionnaire;
import com.questionnaire.entity.QuestionnaireExample;
import com.questionnaire.service.QuestionService;
import com.questionnaire.service.QuestionnaireService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;


@Controller
public class QuestionnaireController {
    @Autowired
    private QuestionnaireService questionnaireService;
    @Autowired
    QuestionService questionService;

    @RequestMapping("/tofound_naire.do")
    public String  toFound_naire(ModelMap map){
        return "found_naire";
    }

    @RequestMapping("/to_naires.do")
    public String  to_naires(ModelMap map){

        List<Questionnaire> questionnaires = questionnaireService.selectByExample(new QuestionnaireExample());

        PageInfo<Questionnaire> pageInfo=new PageInfo<Questionnaire>(questionnaires);
        map.put("pageInfo",pageInfo);
        return "nairesTable";
    }

   //创建问卷
    @RequestMapping("/found_naire.do")
    public String  found_naire(ModelMap map,Questionnaire questionnaire){
      questionnaireService.insertSelective(questionnaire);
      Questionnaire questionnaire1 = questionnaireService.selectLast();
      map.put("questionnaire",questionnaire1);
      map.put("questioncode",1);
      return "found_question";
    }


    //预览问卷
    @RequestMapping("/naire_show.do/{nid}")
    public String  naire_show(ModelMap map,@PathVariable("nid") Integer nid){
        Questionnaire questionnaire= questionnaireService.selectByPrimaryKey(nid);
        QuestionExample example=new QuestionExample();
        QuestionExample.Criteria criteria = example.createCriteria();
        criteria.andOwnerquestionnaireidEqualTo(nid);
        List<Question> questions= questionService.selectByExample(example);
        PageInfo<Question> pageInfo=new PageInfo<Question>(questions);

        map.put("questionnaire",questionnaire);
        map.put("pageInfo",pageInfo);
        return "naire_show";
    }

    //发布问卷
    @RequestMapping("/releasenaire.do/{nid}")
    public String  releasenaire(ModelMap map,HttpServletRequest request, @PathVariable("nid") Integer nid){
        Questionnaire questionnaire=new Questionnaire();
        questionnaire.setNid(nid);
        questionnaire.setStatus(1);
        questionnaire.setSubmittime(new Date());
        int rows=  questionnaireService.updateByPrimaryKeySelective(questionnaire);
       if(rows==1){
           map.put("nid",nid);

        String requestUrl = request.getScheme() //当前链接使用的协议
                +"://" + request.getServerName()//服务器地址
                + ":" + request.getServerPort() //端口号
                + request.getContextPath() //应用名称，如果应用名称为
               ;
           map.put("requestUrl",requestUrl);
         }
       map.put("rows",rows);

        return "releasenaire";
    }

    @ResponseBody
    @RequestMapping(value = "/delenaire.do",produces = {"application/json;charset=UTF-8"})
    public String   delenaire(Integer nid){
        Questionnaire questionnaire=new Questionnaire();
        questionnaire.setNid(nid);
        questionnaire.setStatus(0);
        int rows =  questionnaireService.updateByPrimaryKeySelective(questionnaire);

        JSONObject jsonObject = new JSONObject();

        if (rows==1){
            jsonObject.put("msg","撤回成功！");
        }else {
            jsonObject.put("msg","撤回失败！");
        }
        String jsonString = jsonObject.toJSONString();

        return jsonString;
    }

}
